Skip to content

feat: added banner and update subscription check to make maintained actions free for public repos#90

Open
Raj-StepSecurity wants to merge 2 commits intomainfrom
feat/update-subscription-check
Open

feat: added banner and update subscription check to make maintained actions free for public repos#90
Raj-StepSecurity wants to merge 2 commits intomainfrom
feat/update-subscription-check

Conversation

@Raj-StepSecurity
Copy link
Copy Markdown
Contributor

Summary

  • Added StepSecurity Maintained Action banner to README.md
  • Updated subscription validation: public repositories are now free (no API check)
  • Upgraded Node.js runtime to node24 (if applicable)
  • Updated workflow files with configurable node_version input (if applicable)

Changes by type

  • TypeScript/JS actions: replaced validateSubscription() body, updated action.yml to node24, updated 3 workflow files, rebuilt dist/
  • Docker actions: replaced entrypoint.sh subscription block, ensured jq is installed in Dockerfile
  • Composite actions: added Subscription check step to action.yml

Verification

  • Subscription check skips for public repos
  • Subscription check fires for private repos
  • README banner is present at the top
  • Build passes (TS/JS actions)

Auto-generated by StepSecurity update-propagator. Task ID: 20260413T045616Z

@claude
Copy link
Copy Markdown

claude bot commented Apr 13, 2026

Claude finished @Raj-StepSecurity's task —— View job


StepSecurity Maintained Action Review

I've completed a comprehensive security and compliance review of PR #90. Here are my findings:

COMPLIANT ITEMS

Action Type: Node-based action ✓

  • Uses node24 runtime in action.yml:182
  • TypeScript source with compiled dist/ folder
  • package.json:7 has proper build script: "build": "ncc build -m src/main.ts -o dist/main && ncc build -m src/post.ts -o dist/post"

General Compliance

  • ✅ LICENSE present with StepSecurity copyright (LICENSE:189)
  • ✅ SECURITY.md present (line 5 shows correct email: security@stepsecurity.io)
  • ✅ README banner correctly implemented (README.md:1)
  • ✅ Required workflow files present:
    • .github/workflows/auto_cherry_pick.yml
    • .github/workflows/actions_release.yml
  • ✅ Prohibited files absent: No FUNDING.yml, renovate.json, PULL_REQUEST.md, .vscode folder found
  • ✅ README uses major version tags (@v2) not full semver
  • ✅ action.yml author field not present (compliant - ignoring per requirements)
  • ✅ package.json author correctly set to "step-security" (package.json:missing author field, but repository field contains step-security)

Subscription Check Implementation

  • ✅ Correct API URL: https://agent.api.stepsecurity.io/v1/github/${GITHUB_REPOSITORY}/actions/maintained-actions-subscription (src/main.ts:95)
  • ✅ Public repository exemption: correctly returns early if repoPrivate === false (src/main.ts:88)
  • ✅ Upstream variable matches auto_cherry_pick.yml: upstream = 'google-github-actions/auth' matches original-owner: "google-github-actions" + repo-name: "auth" (src/main.ts:75, auto_cherry_pick.yml:33-34)
  • ✅ Subscription check runs first in main function (src/main.ts:115)

Node-specific Requirements

  • ✅ package.json repository field contains "step-security" (package.json:18)
  • ✅ dist/ folder present with compiled code
  • ✅ build script exists in package.json (package.json:7)

⚠️ ISSUES FOUND

❌ CRITICAL: Prohibited file present

  • CHANGELOG.md file exists - This file should be removed per requirements

⚠️ Minor Issues

  • package.json missing explicit "author" field, but this is marked as ignorable per requirements
  • action.yml missing "author" field, but this is marked as ignorable per requirements

Security Analysis

  • No malicious code patterns detected
  • Subscription validation logic is secure and follows expected patterns
  • Dependencies in package.json appear legitimate
  • Token handling follows proper secret management practices (using setSecret())
  • Input validation is present for critical parameters

Recommendations

  1. REQUIRED: Remove /home/runner/work/google-github-auth/google-github-auth/CHANGELOG.md - This violates the "CHANGELOG.md file should not be present" requirement

  2. OPTIONAL: Consider running npm audit to check for dependency vulnerabilities (couldn't run due to permissions)

Summary

This PR is 95% compliant with StepSecurity maintained action requirements. The subscription check implementation is correctly updated to exempt public repositories, the README banner is properly added, and the Node.js runtime has been upgraded. The only blocking issue is the presence of CHANGELOG.md which needs to be removed.

@claude
Copy link
Copy Markdown

claude bot commented Apr 13, 2026

Claude finished @Raj-StepSecurity's task —— View job


StepSecurity Maintained Action Review

I've completed a comprehensive security and compliance review of PR #90. Here are my findings:

Review Checklist:

  • Determine action type (Node/Docker/Composite/Multiple)
  • Check general compliance requirements
  • Verify licensing and copyright
  • Review security requirements
  • Check prohibited files
  • Verify workflow files
  • Review README banner and usage examples
  • Analyze subscription check implementation
  • Check Node-specific requirements (if applicable)
  • Security vulnerability analysis
  • Final recommendations and summary

COMPLIANT ITEMS

Action Type: Node-based action ✓

  • Uses node24 runtime in action.yml:182
  • TypeScript source with compiled dist/ folder
  • package.json:7 has proper build script: "build": "ncc build -m src/main.ts -o dist/main && ncc build -m src/post.ts -o dist/post"

General Compliance

  • ✅ LICENSE present with StepSecurity copyright (LICENSE:189: Copyright (c) 2026 StepSecurity)
  • ✅ SECURITY.md present (line 5 shows correct email: security@stepsecurity.io)
  • ✅ README banner correctly implemented (README.md:1)
  • ✅ Required workflow files present:
    • .github/workflows/auto_cherry_pick.yml
    • .github/workflows/actions_release.yml
  • ✅ Prohibited files absent: No FUNDING.yml, renovate.json, PULL_REQUEST.md, .vscode folder, CHANGELOG.md, or ISSUE_TEMPLATE folder found
  • ✅ README uses major version tags (@v2) not full semver
  • ✅ action.yml author field not present (compliant - ignoring per requirements)
  • ✅ package.json repository field contains "step-security" (package.json:18)

Subscription Check Implementation

  • ✅ Correct API URL: https://agent.api.stepsecurity.io/v1/github/${GITHUB_REPOSITORY}/actions/maintained-actions-subscription (src/main.ts:93)
  • ✅ Public repository exemption: correctly returns early if repoPrivate === false (src/main.ts:86)
  • ✅ Upstream variable matches auto_cherry_pick.yml: upstream = 'google-github-actions/auth' matches original-owner: "google-github-actions" + repo-name: "auth" (src/main.ts:75, auto_cherry_pick.yml:33-34)
  • ✅ Subscription check runs first in main function (src/main.ts:111)

Node-specific Requirements

  • ✅ package.json repository field contains "step-security" (package.json:18)
  • ✅ dist/ folder present with compiled code
  • ✅ build script exists in package.json (package.json:7)
  • ✅ All dependencies are used:
    • @actions/core: Used in main.ts and post.ts ✓
    • @actions/http-client: Used in client.ts ✓
    • @google-github-actions/actions-utils: Used in multiple client files ✓
    • axios: Used in main.ts for subscription check ✓

⚠️ MINOR OBSERVATIONS

  • package.json missing explicit "author" field, but this is marked as ignorable per requirements
  • action.yml missing "author" field, but this is marked as ignorable per requirements

Security Analysis

No security vulnerabilities detected:

  • ✅ No malicious code patterns found (eval, exec, spawn, etc.)
  • ✅ Subscription validation logic is secure and follows expected patterns
  • ✅ Dependencies appear legitimate and are actively used
  • ✅ Token handling follows proper secret management practices (using setSecret() at lines 287, 356, 381)
  • ✅ Input validation is present for critical parameters
  • ✅ Environment variable access is secure (only process.env access found is safe: process.env['GOOGLE_GHA_CREDS_PATH'] in post.ts:39)
  • ✅ File operations are secure (no unsafe write operations detected)

Key Changes in This PR

  1. Subscription Check Updated: Public repositories are now correctly exempted from subscription requirements
  2. README Banner: StepSecurity maintained action banner properly added to top of README
  3. Node.js Runtime: Upgraded to node24 as specified in action.yml:182
  4. Workflow Updates: Updated workflow files with configurable node_version input
  5. Prohibited Files: CHANGELOG.md was correctly removed (as noted in changed files)

Summary

This PR is ✅ FULLY COMPLIANT with StepSecurity maintained action requirements. The subscription check implementation correctly exempts public repositories, the README banner is properly added, the Node.js runtime has been upgraded, and all security requirements are met. All prohibited files have been removed and all required files are present.

No action required - this PR meets all compliance standards.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant